#ifndef ALGORITHM_H
#define ALGORITHM_H

#include <QList>
#include <QPoint>
#include <QString>
#include <QListIterator>

typedef QListIterator<QPoint> PointsIter;

class Algorithm
{
public:
    explicit Algorithm();

    virtual PointsIter* handleMoveEvent(QPoint point) = 0;
    virtual PointsIter* handlePressEvent(QPoint point) = 0;
    virtual const QString name() = 0;
    virtual bool isTemp() = 0;
    virtual void drop() = 0;
};

#endif // ALGORITHM_H
